Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Проблемма с передачей параметра из PHP в JavaScript (Programmer)
Author Message
Programmer
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed May 30, 2007 8:45 pm (написано за 7 минут 6 секунд)
   Post subject: Проблемма с передачей параметра из PHP в JavaScript
Reply with quote

Дорого времени суток!
Вот столкнуля с такой пробеммой
Есть код, передающий 2 параметра на сервер
Code (JavaScript): скопировать код в буфер обмена
<SCRIPT language="javascript">
<!--
var requrl = 'http://obmenua.com/index.php?dn=obmen&re=cat';
var docSelectorArray = new Array;

if (typeof $ != "function")
  function $(obj) {
    return document.getElementById(obj);
  }

function load(obj, p) {
        var req = new JsHttpRequest();
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
              //tooltip.hide();
              //obj.innerHTML = req.responseJS.d;
              rd = $(req.responseJS.div);
              //if ($(d))
              rd.innerHTML = req.responseJS.out;
            } else {

            }
        }
        req.caching = true;
        req.open('GET', requrl, true);
        req.send({'id': p, 'd' : obj});
}


function populate(arrayLevel) {
        select = $(arrayLevel);
        strOptionValue = (select.options[select.selectedIndex].value);
            load(select, strOptionValue);
}
// -->
</SCRIPT>
и Кусок HTML
Code (html): скопировать код в буфер обмена
        <div (december.com/html/4/element/div.html) id="div1"> (december.com/html/4/element/.html)
                <SELECT (december.com/html/4/element/select.html) id="1s" onchange="populate('1')" name="selector_1" style="width: 100%; "> (december.com/html/4/element/.html)
                                {lot_cat_array}
                        </SELECT>
        </div>
        <div (december.com/html/4/element/div.html) id="div2"> (december.com/html/4/element/.html)</div>
        <div (december.com/html/4/element/div.html) id="div3"> (december.com/html/4/element/.html)</div>
        <div (december.com/html/4/element/div.html) id="div4"> (december.com/html/4/element/.html)</div>
В свою очередь на сервере за обработку запроса отвечает следующий код
Code (php): скопировать код в буфер обмена
<?php
        if(!defined (www.php.net/defined)("DNREAD")) exit (www.php.net/exit)();
        global (www.php.net/global) $db,$basepref;
        require_once "mod/obmen/JsHttpRequest.php";
        $JsHttpRequest =& new JsHttpRequest("windows-1251");
        $id = preparse($_REQUEST['id'],THIS_INT);
        $d = preparse($_REQUEST['d'], THIS_INT); $d++;

        $valid = $db->query("SELECT CatName, CatId FROM ".$basepref."_base WHERE ParentId = '".$id."'");
        IF ($db->numrows($valid) > 0) {
                $out = "<select onchange=\"populate('".$d."s')\" size=\"1\" id=\"".$d."s\" style=\"width: 100%; margin-top:2px;\">";
                while ($temp = $db->fetchrow($valid)) {
                        $out.= "<OPTION VALUE=\"".$temp['CatId']."\">".$temp['CatName']."</OPTION>";
                }
                $out.="</select>";
        } else { $out = '';}

        // Store resulting data in $_RESULT array (will appear in req.responseJs).
        $_RESULT = array (www.php.net/array)(
          'div' => @$d, //
          "out"     => @$out
        );
?>
Собственно вопросс. Почему в куске кода JavaScript
Code (JavaScript): скопировать код в буфер обмена
rd = $(req.responseJS.div);
переменная "rd" всегда равна "null" если передавать в массив переменную, значение которой получено в рез. небольшого преобразования, выю в теле функции
Code (php): скопировать код в буфер обмена
function preparse($resursing,$type){
if($type==THIS_INT){ return (intval (www.php.net/intval)($resursing)>0) ? intval (www.php.net/intval)($resursing) : 0; }
if($type==THIS_MD_5){ return md5 (www.php.net/md5)($resursing); }
if($type==THIS_ADD_SLASH){ return addslashes (www.php.net/addslashes)($resursing); }
if($type==THIS_STRLEN){ return strlen (www.php.net/strlen)($resursing); }
if($type==THIS_TRIM){ return trim (www.php.net/trim)($resursing); }
if($type==THIS_ARRAY){ return (is_array (www.php.net/is_array)($resursing)) ? 1 : 0; }
if($type==THIS_EMPTY){ return (empty (www.php.net/empty)($resursing)) ? 1 : 0; }
if($type==THIS_SYMNUM){ return $resursing = ((eregi (www.php.net/eregi)("[^a-zA-Z0-9_]",$resursing))) ? 1 : 0; }
if($type==THIS_EMAIL){ return (preg_match (www.php.net/preg_match)('/[\w\.\-]+@\w+[\w\.\-]*?\.\w{2,4}/',$email)) ? 1 : 0; }
if($type==THIS_NUMBER){ return (eregi (www.php.net/eregi)("[^0-9]",$resursing)) ? 1 : 0; }
}
с выше указанными параметрами?
Заранее спасибо
Back to top
Programmer
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed May 30, 2007 8:59 pm (спустя 14 минут; написано за 55 секунд)
   Post subject:
Reply with quote

Извините, маленькая опечатка... вот верный код HTML блока
Code (php): скопировать код в буфер обмена
        <div id="1">
                <SELECT id="1s" onchange="populate('1')" name="selector_1" style="width: 100%; ">
                                {lot_cat_array}
                        </SELECT>
        </div>
        <div id="2"></div>
        <div id="3"></div>
        <div id="4"></div>
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
Post a reply
Username
Subject
Господа спамеры и оптимизаторы!

Вы можете даже и не пытаться вставлять в текст поста ссылки - они все равно автоматически удаляются (вернее, тэги <a> заменяются на тэги <u>).

Но если не поверите и все же попытаетесь - как только увидите, что все безрезультатно, удалите свой пост, пожалуйста. Модераторы тоже люди, нехорошо, если они погрязнут в тоннах спама.
     

Disable BBCode in this post
Disable Smilies in this post
    HTML is OFF
BBCode is ON
Smilies are ON
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML